home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et-2_2.lha / et2.2 / src / Token.C < prev    next >
C/C++ Source or Header  |  1990-08-28  |  2KB  |  117 lines

  1. #include "Token.h"
  2.  
  3. const int cDoubleClick= 500;  // 0.5 sec
  4.  
  5. Token::Token()
  6. {
  7.     Code= eEvtNone;
  8.     Flags= eFlgNone;
  9.     Pos= ext= gPoint0;
  10. }
  11.  
  12. Token::Token(EventFlags f, Rectangle &r)    // constructor for damage events
  13. {
  14.     Code= eEvtDamage;
  15.     Flags= f;
  16.     Pos= r.origin;
  17.     ext= r.extent;
  18. }
  19.  
  20. Token::Token(EventCodes ec, EventFlags f, Point p)
  21. {
  22.     Code= ec;
  23.     Flags= f;
  24.     Pos= p;
  25. }
  26.  
  27. bool Token::DoubleClick(Token &t)
  28. {
  29.     if (t.IsMouseButton())
  30.     if (t.Code == Code && abs((int)(t.Pos.x-Pos.x)) < 2
  31.             && abs((int)(t.Pos.y-Pos.y)) < 2
  32.             && abs((long)(t.At-At)) < cDoubleClick)
  33.         return TRUE;
  34.     return FALSE;
  35. }
  36.  
  37. char Token::MapToAscii()
  38. {
  39.     return (Code & 0x7f) + 0x60;
  40. }
  41.  
  42. Point Token::CursorPoint()
  43. {
  44.     switch (CursorDir()) {
  45.     case eCrsUp:
  46.     return Point(0,-1);
  47.     case eCrsDown:
  48.     return Point(0,1);
  49.     case eCrsLeft:
  50.     return Point(-1,0);
  51.     case eCrsRight:
  52.     return Point(1,0);
  53.     default:
  54.     return gPoint0;
  55.     }
  56. }
  57.  
  58. void Token::Dump()
  59. {
  60.     extern int gDebug;
  61.     char *c= "???";
  62.     
  63.     if (gDebug == 0)
  64.     return;
  65.     
  66.     int code= Code;
  67.     switch(Code) {
  68.     case eEvtNone:
  69.     c= "None";
  70.     break;
  71.     case eEvtLocMove:
  72.     c= "LocMove";
  73.     break;
  74.     case eEvtLocStill:
  75.     c= "LocStill";
  76.     break;
  77.     case eEvtEnter:
  78.     c= "Enter";
  79.     break;
  80.     case eEvtExit:
  81.     c= "Exit";
  82.     break;
  83.     case eEvtLocMoveBut:
  84.     c= "LocMoveBut";
  85.     break;
  86.     case eEvtIdle:
  87.     c= "Idle";
  88.     break;
  89.     case eEvtLeftButton:
  90.     c= "LeftButton";
  91.     break;
  92.     case eEvtMiddleButton:
  93.     c= "MiddleButton";
  94.     break;
  95.     case eEvtRightButton:
  96.     c= "RightButton";
  97.     break;
  98.     case eEvtDamage:
  99.     c= "Damage";
  100.     break;
  101.     default:
  102.     if (Code >= eEvtPfkFirst && Code <= eEvtPfkLast) {
  103.         c= "PfkFirst";
  104.         code-= eEvtPfkFirst;
  105.     } if (Code >= eEvtAscFirst && Code <= eEvtAscLast)
  106.         c= "AscFirst";
  107.     if (Code >= eEvtMetaFirst && Code <= eEvtMetaLast)
  108.         c= "MetaFirst";
  109.     break;
  110.     }
  111.     if (Code == eEvtDamage)
  112.     cerr.form("c:%s(%d) f:%04x x:%d y:%d w:%d h:%d\n", c, code, Flags, Pos.x,
  113.                             Pos.y, ext.x, ext.y);
  114.     else
  115.     cerr.form("c:%s(%d) f:%04x x:%d y:%d\n", c, code, Flags, Pos.x, Pos.y);
  116. }
  117.